perm filename MIXRUN[MIX,SYS]1 blob sn#020787 filedate 1972-03-10 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00007 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002		MIXRUN is the section which does all the stuff for
 00006 00003	t←←10
 00013 00004	 DUMP ROUTINE 
 00017 00005	 *RES*   An attempt to increase the utility of the DUMP and
 00025 00006	STROP:	[ASCIZ NOP ]
 00031 00007	STRP05:	[ASCIZ NUM ]
 00035 ENDMK
⊗;
COMMENT	⊗	MIXRUN is the section which does all the stuff for
		the RUN file.  This file keeps a running record of
		the status of the machine during execution.
	⊗

QRUN:	INIT	1, 0			; init in ASCII mode
	SIXBIT	/DSK/
	XWD	RUNBLK, 0
	JRST	ZDISK
	PUSHJ	P,RESCN			;*RES* SEE IF FILE ON PREV LINE
	PUSHJ	P,FINFI2		;*RES* LOOK IT UP
	JRST	.+3			;*RES*
	OUTSTR	[ASCIZ  ⊗FILE FOR TRACE OUTPUT: ⊗] ; get file name
	FINFO
	MOVE	10, [XWD  BLK, RUNBLK+3]
	BLT	10, RUNBLK+6
	ENTER	1, RUNBLK+3		; ENTER THE FILE
	JRST	.-5			; error → try again
	
	PUSHJ	P, PAGBEG		; initialize the file
	MOVNI	10, =4000		; and zero out MAGIC counters
	HRRZS	MAGIC+=4000(10)
	AOJL	10, .-1
	JRST	QRNC1

QRUNC:	SETZ	10,
	PUSHJ	P,RESCN			;*RES* SEE IF TIMES GIVEN ON PREV LINE
	MOVE	11,RECHAR		;*RES* PICK UP FIRST CHAR
	JRST	QRNC2			;*RES*
QRNC1:	OUTSTR	[ASCII  ⊗MAXIMUM PRINT TIME = ⊗]
	INCHWL	11
	SKIPA
	INCHRW	11
	CAIN	11, 15
	JRST	.+5
QRNC2:	ANDI	11, 17
	IMULI	10, =10
	ADD	10, 11
	JRST	.-6
	MOVEM	10, RUNC
	INCHRW	10
	CAIE	10, 12
	JRST	.-2
	JRST	BUTTON

QRUNX:	RELEAS	1, 0			; close and release channel
	SETZM	RUNC			; zero out RUNC
	JRST	BUTTON			; return to BUTTON mode

RUNBLK:	BLOCK	7

ISPEC:	0				; will hold value of PC before execution of instruction
MSPEC:	0				; will hold value of M
RUNC:	0				; will hold maximum print time
THISC:	0				; will hold count for this instruction
CONTNT:	0				; will hold contents of word addressed by MSPEC
DOTS:	-1				; will hld number of times that some line wasn't outputed
LINENO:	0
SAVEF:	0

MAGIC:	BLOCK	=4000			; will hold the magic diagnostic bits

PUTCHR:	SOSG	RUNBLK+2
	OUT	1,
	JRST	.+2
	JRST	ZDISK
	IDPB	10, RUNBLK+1
	POPJ	P,

OPDEF	PUTDEC	[PUSHJ  P, .]
	ANDI	13, 17
PTDC0:	IDIVI	10, =10
	ADDI	11, 60
	HRLM	11, (P)
	SOSLE	13
	PUSHJ	P, PTDC0
	HLRZ	10, (P)
	JRST	PUTCHR

DEFINE	PUTSTR	(X)
{	PUSH	P, [POINT  7, X]
	PUSHJ	P, PTSTR0
}
PTSTR0:	ILDB	10, -1(P)
	JUMPN	10, .+3
	POP	P, -1(P)
	POPJ	P,
	PUSHJ	P, PUTCHR
	JRST	PTSTR0

OPDEF	BIT1	[1B1]

t←←10
k←←13
z←←12
RUACSV:	BLOCK	17			;SAFE STORAGE FOR AC'S



DORUN:	
	MOVEM	16,RUACSV+16
	MOVEI	16,RUACSV
	BLT	16,RUACSV+15
	MOVE	10, ISPEC		; increase count for this instruction
	MOVE	11, JBUSX		; this is the number of times JBUS * executed
	ADDM	11, MAGIC(10)		; so that should be the updated count
	AOS	MAGIC(10)
	HRRZ	10, MAGIC(10)		; is it too many?
	SUB	10, JBUSX		; but want 10 to be only a single increment
	MOVEM	10, THISC		; save the count
	HRRZ	11, ERRORC		; check if any errors
	JUMPG	11, .+3
	CAMLE	10, RUNC
	JRST	RUNDOT
	AOSG	T, DOTS			; was previous line dots?
	JRST	NODOTS			; no
	MOVEI	13, 6			; output last six digits of number of dots
	PUTDEC
	PUTSTR	<[ASCIZ  ⊗
⊗]>
	SOS	LINENO

NODOTS:	SETOM	DOTS			; reset DOTS to -1
	MOVE	10, MSPEC
	CAIL	10, 0
	CAILE	10, =3999
	SKIPA	10, [0]
	MOVE	10, MC0000(10)
	MOVEM	10, CONTNT
	SOSG	LINENO			; end-of-page?
	PUSHJ	P, PAGEND

	MOVE	10,EXTIME		;*RES* PUT OUT TRACE INFORMATION
	MOVEI	13,6			;   STARTING WITH EXECUTION TIME
	PUTDEC
	MOVEI	10,40
	PUSHJ	P,PUTCHR

	MOVE	10,ISPEC		;NOW DO PROGRAM COUNTER
	MOVEI	13,4
	PUTDEC
	MOVEI	10,40
	PUSHJ	P,PUTCHR

	MOVE	10,THISC		;GET COUNT OF EXECUTIONS FOR THIS LOC
	MOVEI	13,2
	PUTDEC
	MOVEI	10,40
	PUSHJ	P,PUTCHR

	MOVEM	INSTR,VALYOU		;PUT OUT INSTRUCTION WORD
	MOVE	10,IMASK		;  IN PROPER FORMAT
	MOVEM	10,MASK
	PUSHJ	P,VALOUT

	LDB	T+1,[POINT 6,INSTR,29]	;GET FIELD SPECIFICATION
	LDB	K,[POINT 6,INSTR,35]	;AND OP CODE
	PUTSTR	<@STROP(K)>		;PUT OUT OP CODE MNEMONIC
	MOVEI	10,40
	PUSHJ	P,PUTCHR		;AND ANOTHER BLANK

	MOVE	10,MSPEC		;GET EFFECTIVE ADDRESS
	MOVEM	10,VALYOU		;PUT IT OUT
	MOVE	10,IRMASK		; AS A 2 BYTE INTEGER
	MOVEM	10,MASK
	PUSHJ	P,VALOUT

	MOVE	10,BMASK		;THE NEXT 2 OR 3 THINGS WRITTEN BYTEWISE
	MOVEM	10,MASK
	LDB	10,[POINT 6,INSTR,35]	;GET OP CODE
	SKIPE	PRNCNT(10)		;SEE IF CONTENTS IS TO BE PRINTED
	JRST	DOCNTN			;YES
	MOVEI	13,=12			;GET # OF BLANKS DESIRED
	MOVEI	10,40
	PUSHJ	P,PUTCHR
	SOJG	13,.-1			;PUT BLANKS IN OUTPUT LINE
	JRST	NOCNTN
DOCNTN:	MOVE	10,CONTNT		;GET CONTENTS OF EFFECTIVE ADDRESS
	MOVEM	10,VALYOU
	PUSHJ	P,VALOUT		;PRINT CONTENTS

NOCNTN:	MOVEM	RA,VALYOU		;PUT OUT REGISTER A
	PUSHJ	P,VALOUT

	MOVEM	RX,VALYOU
	PUSHJ	P,VALOUT		;PUT OUT REGISTER X

	MOVE	10,IRMASK		;CHANGE MASK FOR INDEX REGISTERS
	MOVEM	10,MASK
	MOVEM	R1,VALYOU
	PUSHJ	P,VALOUT
	MOVEM	R2,VALYOU
	PUSHJ	P,VALOUT
	MOVEM	R3,VALYOU
	PUSHJ	P,VALOUT
	MOVEM	R4,VALYOU
	PUSHJ	P,VALOUT
	MOVEM	R5,VALYOU
	PUSHJ	P,VALOUT
	MOVEM	R6,VALYOU
	PUSHJ	P,VALOUT

	MOVE	10,RJ			;PUT OUT J REGISTER
	MOVEI	13,4
	PUTDEC
	MOVEI	10,40
	PUSHJ	P,PUTCHR


LINEND:	MOVEI	T, 40			; init to space
	MOVE	FLAGS,RUACSV+FLAGS	;PICK UP SAVED FLAG VALUE
	TLNE	FLAGS, OVFLAG		; OVFLAG on?
	MOVEI	T, "X"			; yes
	PUSHJ	P, PUTCHR		; output it
	MOVEI	T,40
	PUSHJ	P,PUTCHR		;PUT OUT A BLANK TO SEPARATE
	TLNE	FLAGS, GFLAG		; is G on?
	MOVEI	T, "G"			; yes
	TLNE	FLAGS, EFLAG		; is E on?
	MOVEI	T, "E"			; yes
	TLNE	FLAGS, LFLAG		; is L on?
	MOVEI	T, "L"			; yes
	PUSHJ	P, PUTCHR		; output it (AT MOST 1 CAN BE ON)

	PUTSTR	<[ASCIZ  ⊗
⊗]>
	MOVSI	16,RUACSV		;RESTORE REGISTERS
	BLT	16,16
	POPJ	P,			; return

RUNDOT:	AOSG	DOTS			; only output if first unprinted line
	PUSHJ	P,	[PUTSTR	<[ASCIZ  ⊗........⊗]>
			POPJ	P,]
	MOVSI	16,RUACSV
	BLT	16,16			;RESTORE REGISTERS
	POPJ	P,

PAGEND:	MOVEI	T, 14			; form-feed
	PUSHJ	P, PUTCHR
PAGBEG:	PUTSTR	TITLE1
	PUTSTR	TITLE2
	MOVEI	T, =45
	MOVEM	T, LINENO
	POPJ	P,

TITLE1:	ASCIZ	⊗
EXTIME _LOC ## ___INSTRUCTION__ __M__ __CONTENTS_ _____rA____ _____rX____⊗
TITLE2:	ASCIZ	⊗ _rI1_ _rI2_ _rI3_ _rI4_ _rI5_ _rI6_ _rJ_ O C

⊗
PRNCNT:			;NON-ZERO MEANS PRINT CONTENTS FOR THIS OP CODE
	0			;  0
	REPEAT	=4,{1}		;  1 -  4
	REPEAT	=3,{0}		;  5 -  7
	REPEAT	=26,{1}		;  8 - 33
	REPEAT	=22,{0}		; 34 - 55
	REPEAT	=8,{1}		; 56 - 63

COMMENT ⊗ DUMP ROUTINE ⊗

ENDRUN:	
	SETZM	DMIN
	MOVEI	10,=3999
	MOVEM	10,DMAX
	MOVE	10,BMASK
	MOVEM	10,DFALTM
DUMP:
	MOVEI	10, 14
	PUSHJ	P, PUTCHR
	PUTSTR	<[ASCIZ ⊗
DUMP OF NON-ZERO LOCATIONS

_LOC       ##          +0      ##          +1      ##          +2      ##          +3      ##          +4

⊗]>
 	PUTSTR	MSKMSG
	PUSHJ	P,PMASK			;PRINT MASK DESCRIPTION
	PUTSTR	<[ASCIZ /

/]>


	MOVE	Z,DMIN			;GET BOTTOM OF DUMP RANGE
NEXTRY:	HRRZ	T, MAGIC(Z)
	SKIPN	T
	SKIPE	MC0000(Z)
	PUSHJ	P, THISET
	AOJ	Z,
	CAMG	Z, DMAX
	JRST	NEXTRY
	MOVEI	10, 14
	PUSHJ	P, PUTCHR
	SETZM	LINENO
	JRST	BUTTON

THISET:	MOVE	T, Z
	IDIVI	T, 5
	IMULI	T, 5
	MOVE	Z, T
	MOVEI	K, 4
	MOVEM	K, ZZ
	PUTDEC
	MOVEI	T, ":"
	PUSHJ	P, PUTCHR
	PUTSTR	<[ASCIZ ⊗  ⊗]>
	PUSHJ	P, ENDRNZ
	SOSL	ZZ
	AOJA	Z, .-2
	PUTSTR	<[ASCIZ ⊗
⊗]>
	POPJ	P,

ZZ:	0
MSKMSG:	ASCIZ	/   BYTE GROUPING FOR NON-EXECUTED LOCATIONS: /


ENDRNZ:	
	HRRZ	T, MAGIC(Z)
	MOVEI	K, 6
	PUTDEC
	MOVEI	T, 40
	PUSHJ	P, PUTCHR
	MOVE	K,MC0000(Z)
	MOVEM	K,VALYOU	;SAVE VALUE FOR VALOUT ROUTINE
	HRRZ	T, MAGIC(Z)
	JUMPE	T, NOTEX
	MOVE	T,IMASK
	MOVEM	T,MASK
	PUSHJ	P,VALOUT	;WRITE WITH BYTES GROUPED AS INSTR
	MOVEI	T," "		;FOLLOWED BY ANOTHER BLANK
	PUSHJ	P,PUTCHR
	POPJ	P,
NOTEX:	MOVE	T,DFALTM	;GET DEFAULT MASK
	MOVEM	T,MASK
	PUSHJ	P,VALOUT
	MOVEI	K,=11		;GET STANDARD SIZE + 1
	SUB	K,PICSIZ	;SUB SIZE OF PRINTED MASKED OUTPUT
	SKIPA	T,[40]		;GET A BLANK
	PUSHJ	P,PUTCHR
	SOJGE	K,.-1		;FILL OUT FIELD WITH BLANKS
	POPJ	P,

COMMENT ⊗ *RES*   An attempt to increase the utility of the DUMP and
TRACE routines by allowing other formats for printing information.
⊗

BEGIN MSPARS

COMMENT ⊗ MSPARS, routine to parse a mask description of the form:
	<mask>::= t | <mask>t
	t::= n | (n)
	n::= 1 | 2 | 3 | 4 | 5
	When MSPARS is called, the first char of the description is
in register 10. Subsequent chars are obtained from the TTY by INCHWL.
On exit, locaton MASK contains the mask and register 13 contains the
total "length" (in bytes) of the masked information.  The mask consists
of 4 bit bytes, each conataining an (visible/invisible) bit and a 3
bit number of bytes.  A zero byte ends the mask.
⊗


↑MSPARS:		;PARSE A MASK DESCRIPTION
	MOVE	13,[POINT 4,MASK]
	MOVEM	13,MSKPTR		;SET UP POINTER TO MASK
	SETZB	13,MASK
	JRST 	MSP1A			;DON'T READ THE FIRST TIME
MSP1:	INCHWL	10			;GET THE NEXT CHAR
	CAIN	10,40			;IGNORE BLANKS
	JRST	.-2
MSP1A:	CAIE	10,"("			;IS THIS GROUP INVISIBLE?
	JRST	MSP3			;NO
	INCHWL	10			;GET NUMBER OF BYTES
	CAIN	10,40
	JRST	.-2			;IGNORE BLANKS
	CAIG	10,"5"			;SHOULD BE A DIGIT BETWEEN 1 AND 5
	CAIGE	10,"1"
	JRST	MSP2			;IT WASN'T
	SUBI	10,"0"-10		;CONVERT TO OCTAL AND ADD BIT 10
	IDPB	10,MSKPTR		;STORE PATTERN
	ADDI	13,-10(10)		;UPDATE SIZE
	INCHWL	10
	CAIN	10,40
	JRST	.-2
	CAIN	10,")"			;LOOK FOR CLOSING )
	JRST	MSP1			;FOUND IT

MSP2:	OUTSTR	[ASCIZ /ILLEGAL MASK DESCRIPTION
/]
	JRST	QBUTN			;READ TO END OF LINE AND GO TO BUTTON

MSP3:	CAIG	10,"5"			;END OF DESCRIPTION OF NOT DIGIT
	CAIGE	10,"1"
	POPJ	P,
	SUBI	10,"0"			;CONVERT TO OCTAL
	ADD	13,10
	IDPB	10,MSKPTR		;STORE DESCRIPTION
	JRST	MSP1			;LOOK SOME MORE

↑MSKPTR: 0
↑MASK:	0
BEND MSPARS

DFALTM:	0		;LOCATION OF THE DEFAULT MASK FOR DUMP
IMASK:	BYTE	(4)2,1,1,1	;INSTRUCTION MASK
BMASK:	BYTE	(4)1,1,1,1,1	;BYTE MASK
DMASK:	BYTE	(4)5		;DECIMAL MASK
IRMASK:	BYTE	(4)13,2		;INDEX REGISTER MASK


BEGIN VALOUT
COMMENT ⊗ Output the value in location VALYOU as specified by the mask
in locaton MASK.
⊗

↑VALOUT:		;OUTPUT (TO TRACE FILE) A VALUE
	PUSH	P,10
	PUSH	P,11
	PUSH	P,12
	PUSH	P,13
	SETZM	PICSIZ			;COLLECT SIZE OF PRINTED OUTPUT
	MOVEI	10,"+"			;GET THE SIGN TO PUT OUT
	SKIPGE	VALYOU
	MOVEI	10,"-"			;CHANGE IF NEGATIVE
	PUSHJ	P,PUTCHR
	MOVE	10,[POINT 4,MASK]
	MOVEM	10,MSKPTR
	MOVE	10,[POINT 6,VALYOU,5]	;SET UP POINTERS
	MOVEM	10,VALPTR#
VAL1:	ILDB	12,MSKPTR		;GET BYTE COUNT
	JUMPE	12,VAL3			;QUIT IF OUT OF BYTES
	TRZN	12,10			;ARE THESE INVISIBLE?
	JRST	VAL2			;NO
	IBP	VALPTR			;MOVE PAST BYTES
	SOJG	12,.-1
	JRST	VAL1			;LOOK AT NEXT FIELD
VAL2:	SETZB	10,13			;INITIALIZE REGISTERS
VAL2A:	ILDB	11,VALPTR		;GET NEXT BYTE
	ADDI	13,2			;INCREASE FIELD SIZE
	LSH	10,6			;COLLECT NUMBER
	ADD	10,11
	SOJG	12,VAL2A		;GET REQUISITE NUMBER OF BYTES
	ADDM	13,PICSIZ
;
;	NOW WRITE OUT NUMBER IN 10 WITH (13) DIGITS
;
	PUTDEC
	JRST	VAL1			;GO TO NEXT FIELD

VAL3:	MOVEI	10,40
	PUSHJ	P,PUTCHR		;PUT BLANK AT END
	POP	P,13
	POP	P,12
	POP	P,11
	POP	P,10
	POPJ	P,

↑VALYOU:	0
↑PICSIZ:	0
BEND VALOUT

BEGIN RANGE
COMMENT ⊗ Routine to obtain the desired dump range from the TTY.  Ranges are
of the form n:n.  The default range is 0:3999.  On exit, the range is in
locations DMIN and DMAX and the next input character is in 10.
Register 11 is modified by this routine.
⊗
↑RANGE:
	MOVEI	11,=3999		;INITIALIZE RANGE
	MOVEM	11,DMAX
	PUSHJ	P,RGNUM			;LOOK FOR A NUMBER
	MOVEM	11,DMIN			;MOVE 0 OR NUMBER TO DMIN
	CAIN	10,":"			;IS A RANGE SPECIFIED
	JRST	RNG1			;YES
	SKIPE	NFOUND			;WAS THERE A NUMBER AT ALL
	MOVEM	11,DMAX			;YES, A SINGLE LOCATION TO DUMP
	POPJ	P,			;NO
RNG1:	PUSHJ	P,RGNUM			;GET UPPER BOUND
	MOVEM	11,DMAX			;STORE IT
	POPJ	P,			;RETURN

RGNUM:
	SETZ	11,
	SETZM	NFOUND#			;NO NUMBER FOUND YET
RG1:	INCHWL	10
	CAIN	10,40
	JRST	.-2			;GET A NON-BLANK CHARACTER
	CAIG	10,"9"
	CAIGE	10,"0"			;IS IT A DIGIT?
	JRST	RG2			;NO
	IMULI	11,=10
	ADDI	11,-"0"(10)		;ACCUMULATE NUMBER
	SETOM	NFOUND
	JRST	RG1
RG2:	CAIL	11,=4000		;IS IT A VALID ADDRESS
	MOVEI	11,=3999		;GIVE TOP OF CORE IF TOO BIG
	SKIPA
	INCHWL	10			;GET NEXT CHAR
	CAIN	10,40			;GET NEXT NON-BLANK CHAR
	JRST	.-2
	POPJ	P,
	JRST	QBUTN

↑DMIN:	0
↑DMAX:	0
BEND RANGE

BEGIN PMASK
COMMENT ⊗ PRINT MASK DESCRIPTION TO TRACE FILE ⊗

↑PMASK:	PUSH	P,10			;SAVE REGISTERS
	PUSH	P,11
	PUSH	P,13
	SETZM	PICSIZ
	MOVE	11,[POINT 4,DFALTM]	;GET MASK
DMP1:	ILDB	13,11			;GET MASK ENTRY
	JUMPE	13,DMP3			;QUIT IF END OF MASK
	TRZN	13,10			;IS IT VISIBLE
	JRST	DMP2			;YES
	MOVEI	10,"("
	PUSHJ	P,PUTCHR
	MOVEI	10,60(13)
	PUSHJ	P,PUTCHR
	MOVEI	10,")"
	PUSHJ	P,PUTCHR
	MOVEI	10,3			;UPDATE SIZE OF PRINTED MASK
	ADDM	10,PICSIZ
	JRST	DMP1
DMP2:	MOVEI	10,60(13)
	PUSHJ	P,PUTCHR
	AOS	PICSIZ
	JRST	DMP1			;LOOK AT NEXT MASK ENTRY
DMP3:	POP	P,13			;RESTORE REGISTERS
	POP	P,11
	POP	P,10
	POPJ	P,
BEND PMASK

STROP:	[ASCIZ ⊗NOP ⊗]
	[ASCIZ ⊗ADD ⊗]
	[ASCIZ ⊗SUB ⊗]
	[ASCIZ ⊗MUL ⊗]
	[ASCIZ ⊗DIV ⊗]
	@STRP05(T+1)
	@STRP06(T+1)
	[ASCIZ ⊗MOVE⊗]

	[ASCIZ ⊗LDA ⊗]
	[ASCIZ ⊗LD1 ⊗]
	[ASCIZ ⊗LD2 ⊗]
	[ASCIZ ⊗LD3 ⊗]
	[ASCIZ ⊗LD4 ⊗]
	[ASCIZ ⊗LD5 ⊗]
	[ASCIZ ⊗LD6 ⊗]
	[ASCIZ ⊗LDX ⊗]

	[ASCIZ ⊗LDAN⊗]
	[ASCIZ ⊗LD1N⊗]
	[ASCIZ ⊗LD2N⊗]
	[ASCIZ ⊗LD3N⊗]
	[ASCIZ ⊗LD4N⊗]
	[ASCIZ ⊗LD5N⊗]
	[ASCIZ ⊗LD6N⊗]
	[ASCIZ ⊗LDXN⊗]

	[ASCIZ ⊗STA ⊗]
	[ASCIZ ⊗ST1 ⊗]
	[ASCIZ ⊗ST2 ⊗]
	[ASCIZ ⊗ST3 ⊗]
	[ASCIZ ⊗ST4 ⊗]
	[ASCIZ ⊗ST5 ⊗]
	[ASCIZ ⊗ST6 ⊗]
	[ASCIZ ⊗STX ⊗]

	[ASCIZ ⊗STJ ⊗]
	[ASCIZ ⊗STZ ⊗]
	[ASCIZ ⊗JBUS⊗]
	[ASCIZ ⊗IOC ⊗]
	[ASCIZ ⊗IN  ⊗]
	[ASCIZ ⊗OUT ⊗]
	[ASCIZ ⊗JRED⊗]
	@STRP39(T+1)

	@STRP40(T+1)
	@STRP41(T+1)
	@STRP42(T+1)
	@STRP43(T+1)
	@STRP44(T+1)
	@STRP45(T+1)
	@STRP46(T+1)
	@STRP47(T+1)

	@STRP48(T+1)
	@STRP49(T+1)
	@STRP50(T+1)
	@STRP51(T+1)
	@STRP52(T+1)
	@STRP53(T+1)
	@STRP54(T+1)
	@STRP55(T+1)

	[ASCIZ ⊗CMPA⊗]
	[ASCIZ ⊗CMP1⊗]
	[ASCIZ ⊗CMP2⊗]
	[ASCIZ ⊗CMP3⊗]
	[ASCIZ ⊗CMP4⊗]
	[ASCIZ ⊗CMP5⊗]
	[ASCIZ ⊗CMP6⊗]
	[ASCIZ ⊗CMPX⊗]

STRP05:	[ASCIZ ⊗NUM ⊗]
	[ASCIZ ⊗CHAR⊗]
	[ASCIZ ⊗HLT ⊗]

STRP06:	[ASCIZ ⊗SLA ⊗]
	[ASCIZ ⊗SRA ⊗]
	[ASCIZ ⊗SLAX⊗]
	[ASCIZ ⊗SRAX⊗]
	[ASCIZ ⊗SLC ⊗]
	[ASCIZ ⊗SRC ⊗]
	[ASCIZ ⊗SLB ⊗]
	[ASCIZ ⊗SRB ⊗]

STRP39:	[ASCIZ ⊗JMP ⊗]
	[ASCIZ ⊗JSJ ⊗]
	[ASCIZ ⊗JOV ⊗]
	[ASCIZ ⊗JNOV⊗]
	[ASCIZ ⊗JL  ⊗]
	[ASCIZ ⊗JE  ⊗]
	[ASCIZ ⊗JG  ⊗]
	[ASCIZ ⊗JGE ⊗]
	[ASCIZ ⊗JNE ⊗]
	[ASCIZ ⊗JLE ⊗]

STRP40:	[ASCIZ ⊗JAN ⊗]
	[ASCIZ ⊗JAZ ⊗]
	[ASCIZ ⊗JAP ⊗]
	[ASCIZ ⊗JANN⊗]
	[ASCIZ ⊗JANZ⊗]
	[ASCIZ ⊗JANP⊗]
	[ASCIZ ⊗JAE ⊗]
	[ASCIZ ⊗JAO ⊗]

STRP41:	[ASCIZ ⊗J1N ⊗]
	[ASCIZ ⊗J1Z ⊗]
	[ASCIZ ⊗J1P ⊗]
	[ASCIZ ⊗J1NN⊗]
	[ASCIZ ⊗J1NZ⊗]
	[ASCIZ ⊗J1NP⊗]
	[ASCIZ ⊗J1E ⊗]
	[ASCIZ ⊗J1O ⊗]

STRP42:	[ASCIZ ⊗J2N ⊗]
	[ASCIZ ⊗J2Z ⊗]
	[ASCIZ ⊗J2P ⊗]
	[ASCIZ ⊗J2NN⊗]
	[ASCIZ ⊗J2NZ⊗]
	[ASCIZ ⊗J2NP⊗]
	[ASCIZ ⊗J2E ⊗]
	[ASCIZ ⊗J2O ⊗]

STRP43:	[ASCIZ ⊗J3N ⊗]
	[ASCIZ ⊗J3Z ⊗]
	[ASCIZ ⊗J3P ⊗]
	[ASCIZ ⊗J3NN⊗]
	[ASCIZ ⊗J3NZ⊗]
	[ASCIZ ⊗J3NP⊗]
	[ASCIZ ⊗J3E ⊗]
	[ASCIZ ⊗J3O ⊗]

STRP44:	[ASCIZ ⊗J4N ⊗]
	[ASCIZ ⊗J4Z ⊗]
	[ASCIZ ⊗J4P ⊗]
	[ASCIZ ⊗J4NN⊗]
	[ASCIZ ⊗J4NZ⊗]
	[ASCIZ ⊗J4NP⊗]
	[ASCIZ ⊗J4E ⊗]
	[ASCIZ ⊗J4O ⊗]

STRP45:	[ASCIZ ⊗J5N ⊗]
	[ASCIZ ⊗J5Z ⊗]
	[ASCIZ ⊗J5P ⊗]
	[ASCIZ ⊗J5NN⊗]
	[ASCIZ ⊗J5NZ⊗]
	[ASCIZ ⊗J5NP⊗]
	[ASCIZ ⊗J5E ⊗]
	[ASCIZ ⊗J5O ⊗]

STRP46:	[ASCIZ ⊗J6N ⊗]
	[ASCIZ ⊗J6Z ⊗]
	[ASCIZ ⊗J6P ⊗]
	[ASCIZ ⊗J6NN⊗]
	[ASCIZ ⊗J6NZ⊗]
	[ASCIZ ⊗J6NP⊗]
	[ASCIZ ⊗J6E ⊗]
	[ASCIZ ⊗J6O ⊗]

STRP47:	[ASCIZ ⊗JXN ⊗]
	[ASCIZ ⊗JXZ ⊗]
	[ASCIZ ⊗JXP ⊗]
	[ASCIZ ⊗JXNN⊗]
	[ASCIZ ⊗JXNZ⊗]
	[ASCIZ ⊗JXNP⊗]
	[ASCIZ ⊗JXE ⊗]
	[ASCIZ ⊗JXO ⊗]

STRP48:	[ASCIZ ⊗INCA⊗]
	[ASCIZ ⊗DECA⊗]
	[ASCIZ ⊗ENTA⊗]
	[ASCIZ ⊗ENNA⊗]

STRP49:	[ASCIZ ⊗INC1⊗]
	[ASCIZ ⊗DEC1⊗]
	[ASCIZ ⊗ENT1⊗]
	[ASCIZ ⊗ENN1⊗]

STRP50:	[ASCIZ ⊗INC2⊗]
	[ASCIZ ⊗DEC2⊗]
	[ASCIZ ⊗ENT2⊗]
	[ASCIZ ⊗ENN2⊗]

STRP51:	[ASCIZ ⊗INC3⊗]
	[ASCIZ ⊗DEC3⊗]
	[ASCIZ ⊗ENT3⊗]
	[ASCIZ ⊗ENN3⊗]

STRP52:	[ASCIZ ⊗INC4⊗]
	[ASCIZ ⊗DEC4⊗]
	[ASCIZ ⊗ENT4⊗]
	[ASCIZ ⊗ENN4⊗]

STRP53:	[ASCIZ ⊗INC5⊗]
	[ASCIZ ⊗DEC5⊗]
	[ASCIZ ⊗ENT5⊗]
	[ASCIZ ⊗ENN5⊗]

STRP54:	[ASCIZ ⊗INC6⊗]
	[ASCIZ ⊗DEC6⊗]
	[ASCIZ ⊗ENT6⊗]
	[ASCIZ ⊗ENN6⊗]

STRP55:	[ASCIZ ⊗INCX⊗]
	[ASCIZ ⊗DECX⊗]
	[ASCIZ ⊗ENTX⊗]
	[ASCIZ ⊗ENNX⊗]